Skip to content

fix(people): protect governed mutation runtime types - #64

Draft
seonghobae wants to merge 137 commits into
developfrom
fix/hire-identity-type-integrity
Draft

fix(people): protect governed mutation runtime types#64
seonghobae wants to merge 137 commits into
developfrom
fix/hire-identity-type-integrity

Conversation

@seonghobae

@seonghobae seonghobae commented Aug 21, 2026

Copy link
Copy Markdown
Contributor

Scope

Canonical Orgmetra People mutation runtime/contract-integrity lane. HR mutation truth stays in Orgmetra; this PR does not copy mutable shared-kernel, authorization, workflow-owner, People-read, or downstream Assignment source.

Protected base is develop@eb9757f8649aaad026a9865508d9aad50c1a7a4f. Current exact head is 818950960c4fe0a4e7b026bd5499fe9cca1002be; the PR remains open · Draft · mechanically mergeable. Predecessor checks/reviews are causal evidence only and do not authorize this head.

Retained repair chain

#215#225 retain hire/generic PostgreSQL trust-boundary hardening. #226#231 retain post-construction validation, target snapshots, and command detachment. #232/#233 keep Assignment allocation and OpenAPI aligned to the strictly-positive (0, 1.0000] invariant. #246 preserves same-key/same-semantic replay of first-committed generic mutation identity. Packaging/runtime repairs align People with orgmetra-hris-kernel==0.4.0 and Python >=3.12; #260/#261 own runtime-floor and installed-wheel evidence. #262 covers all four #64-owned operational UUID boundaries. #264 binds validated PostgreSQL connection capabilities structurally. #266#269 detach command/result outer and nested identity aliases. #270 binds replay verification to an inert pre-port digest rather than mutable command/authorization objects.

41a35a5b026d83cefae8d2ca6b2415bf36086d6a is the replay-verification repair head; Foundation 34086056525 later reached terminal SUCCESS and remains historical evidence only.

Invalidated #271 experiment

Fresh causal review showed valid same-Employment writers already serialize through the current converted-worker row, while same-Position writers serialize through the Position root. #271's extra Employment row lock duplicated that conflict boundary without behavioral proof. Ordinary successor 19c6c7e2eb8c05d8317635a0fa66768cc904088b removed the redundant lock and source-shape regression with no net file delta versus pre-#271 41a35a5...; #271 is closed not_planned. No force-push or destructive rebase was used.

PostgreSQL concurrency evidence — #272

fb28b01915cd8bf233260cfa3c4b562879f9ff7b added executable two-session PostgreSQL acceptance in services/people-api/tests/test_postgres_assignment_concurrency_acceptance.py. It drives the real PostgresPeopleMutationPort under READ COMMITTED against an isolated PostgreSQL 16 container and repository migrations. PostgreSQL itself must expose writer B in wait_event_type='Lock' with writer A in pg_blocking_pids(...); sleeps only pace observation.

The two cases are same Employment/Person with different Positions, and different Employments/People with one Position. In each case writer A commits 0.7500 and writer B attempts 0.5000; B must re-read after the conflict boundary and reject an aggregate above 1.0000. Acceptance checks one durable Assignment, matching Assignment audit/outbox/idempotency evidence, no rejected-write residue, and client/server cleanup.

015ba7ce98da5a3100194ec9e3389df8b0cedb5e repaired review findings in the harness (BaseExceptionException, unused pytest removal). 1ea5cb1dcc887cf5b83fa85f926228e146f09d3f corrected evidence terminology: seeded People/Employment/Position/Candidate/Decision records are deterministic synthetic integration fixtures, suitable for transaction/lock mechanism evidence only and not buyer-realistic or scientific claims. Foundation 34107536416 for exact 1ea5cb1d... subsequently reached terminal SUCCESS.

6cf31e8344a39d4490641441c190984533c49360 repaired failure-path barrier release and started-writer joins. 558afdf482af7e6e69ea0694e9f731365f1300be added a forced post-lock failure regression proving server sessions disappear before teardown; 07c2ff1107f9e39fcb74ec844a5972ca0c7d190a added client-handle closure evidence. Test-first fb8eeb9041c0ab838f1c03f0bdfb28500b4397ff showed cleanup joins were unbounded, and 614ee5f2027153223a6cb23773f2b8704674ca2d applied join(timeout=30).

c1fb77bdd87329755008df94b5161df205a96467 forced deadline expiry after a real PostgreSQL lock observation. 0d78299f5d49238fc1228f87b138d2bfca6dd367 added _join_writer_before_teardown(...), which terminates an expired writer only by its captured PID plus internal application_name and then bounded-joins again. b71263918cc59b9ca4177abf1770f1c87b619440 strengthened the regression so the real termination query completes before the held client cleanup seam is released.

Fresh review of b712639... found that termination receipt itself was inconsistent. Ordinary forward 52257a66f68cf0893f2b351cbc0392b3e52f5bb4 changed the query to return count(*)|coalesce(bool_and(pg_terminate_backend(pid)), false)::text and accept only exact 1|true, so zero PID/application-name matches and failed termination both fail closed.

Foundation 34127782377 then supplied a real hosted RED on exact 52257a66.... Exact checkout, compile, runner-image contract, foundation-pack validation, dependency hygiene, and all earlier owned suites passed; People ran 264 passing tests before test_expired_cleanup_join_terminates_live_backend_before_returning failed. RCA: the regression seam forced the first bounded join to expire for both writer A and writer B, even though only writer B's client cleanup was deliberately held. After the pre-COMMIT barrier was released, writer A was allowed to finish naturally; it could quiesce between the synthetic zero-time join and PID/application-name lookup, so the exact termination receipt correctly returned no live owned backend. This was a test-seam defect, not evidence of a production row-lock or backend-termination defect.

Ordinary forward 818950960c4fe0a4e7b026bd5499fe9cca1002be is the minimal causal repair. _ExpireHeldWriterJoinThread derives the targeted writer from the factory passed to _run_writer; only the deliberately held writer (factory._barrier is None) receives a synthetic first-join expiry. Writer A receives the real bounded cleanup join and may quiesce normally; writer B remains deliberately live so the real PID + internal application_name termination query and exact 1|true receipt are still exercised. Only test_postgres_assignment_concurrency_failure_cleanup.py changed. Production adapter code, SQL mutation semantics, transaction semantics, row-lock ordering, RLS, audit/outbox, and idempotency are unchanged.

The real/right-cleared commercial/scientific acceptance tier remains separate and unresolved until a permitted provenance-backed source is available. Synthetic rows are not promoted to reality evidence.

Current exact-head acceptance

Foundation 34131641452, job 101772911159, is terminal SUCCESS on exact 818950960c4fe0a4e7b026bd5499fe9cca1002be. It proved exact checkout, compile, runner-image contract, foundation-pack validation, dependency hygiene, the complete owned unit/service invocation, repository PostgreSQL contracts, and read-only validation. The People API invocation runs the full services/people-api/tests tree under the pinned ORGMETRA_POSTGRES_IMAGE, so #272's normal two-session interleavings plus forced post-lock failure/timeout cleanup are current-head hosted GREEN mechanism evidence.

SAST 34131642172 is terminal SUCCESS. Security 34131642055 is terminal FAILURE only at dependency-review support establishment; exact-head checkout succeeded and Scorecard, Trivy, and OSV completed successfully. The authoritative public dependency comparison remains the central fail-closed availability incident in ContextualWisdomLab/.github#810; sibling scanner success is not promoted as a substitute.

CodeQL 34131641597 is terminal FAILURE. Language detection succeeded. Both Python and Actions compatibility jobs successfully read the current-head dispatch verdict and then failed at Release runner or enforce current-head CodeQL verdict at 2026-09-07T15:29Z; the same run's Dispatch current-head CodeQL scan job did not start until 16:01Z and then succeeded. This historical exact-head result remains non-passing and is a canary for the central terminal-receipt ordering/publication owner ContextualWisdomLab/.github#1929; later central repairs do not retroactively transfer GREEN evidence.

Required Strix run 34131638369, job 101787200568, is also terminal FAILURE. Its exact-head artifact strix-reports id 10030120846 has digest sha256:e61c95771ab6c37f7a60431f01eff4ada91adbcfbd2f6eaf79a803aacd7f9d5c. The scanner itself recorded status=completed, scan_completed=true, and success=true, and emitted an empty SARIF result set after 191 LLM requests, but the terminal narrative simultaneously claimed several low-impact potential issues while provider-error traces remained in the report. The central strict gate therefore failed closed and labelled the run STRIX_PROVIDER_UNAVAILABLE. That artifact is not promoted to GREEN: terminal evidence is internally inconsistent, and the provider-exhaustion diagnostic is not by itself proof that no usable route existed after the later completed scan receipt. Central owner issue ContextualWisdomLab/.github#2026 now owns the typed distinction among complete-consistent, incomplete/provider-unavailable, and complete-but-inconsistent Strix evidence while preserving orchestrator/free, no external/paid fallback, and default-null model timeout semantics.

Submitted reviews remain COMMENTED-only; every returned inline review thread is resolved and qualifying independent approval is absent. Keep Draft; no merge/release claim is authorized.

Central Dependency Review availability, CodeQL terminal receipt publication, Strix terminal-evidence classification, and solo-maintainer approval-governance repairs remain .github owner-path concerns (#810, #1929, #2026, #772). Do not churn People source, fabricate verdicts, self/model approve, weaken required gates, transfer predecessor evidence, or use routine administrator bypass.

Owner dependencies

#63 owns shared HRIS-kernel audit/runtime evidence. #55 owns People read semantics. #65 owns purpose-bound authorization/runtime integrity and overlaps People mutation files; after #64 becomes protected truth, #65 must non-force adopt it while preserving #229#233, #246, packaging/runtime repairs, #262, #264, #266#270, and #272's measured PostgreSQL behavior, evidence classification, deterministic failure cleanup, bounded waits, verified owned-backend termination, exact termination-receipt contract, and the rule that forced timeout evidence targets only a writer intentionally kept live. #141 follows #64/#65; #163/#165 consume normally integrated protected truth only.

docs/product-technical-gap-baseline.md remains single-writer-owned by #100. Durable concurrency evidence should describe measured conflict serialization, deterministic cleanup, bounded failure waits, verified owned-backend termination, exact one-owned-session termination receipts, and targeted timeout seams; it must not resurrect #271's redundant lock or mislabel synthetic fixtures as real/right-cleared data.

Causal order remains #63 protected integration as gates allow → #64 remaining exact-head gates/governance → #65 non-force protected adoption/reconciliation → #141 → Assignment descendants. No force-push, destructive rebase, self-approval, routine administrator bypass, gate weakening, no-op retrigger, mutable sibling source copy, or predecessor-evidence transfer.

@coderabbitai

coderabbitai Bot commented Aug 21, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Team

Run ID: b7c5b8f6-6a9e-48af-80fd-42512f13eafa

📥 Commits

Reviewing files that changed from the base of the PR and between 61cba0f and adab344.

📒 Files selected for processing (6)
  • services/people-api/src/orgmetra_people_api/postgres_hire.py
  • services/people-api/tests/test_postgres_hire_idempotency_text_runtime_integrity.py
  • services/people-api/tests/test_postgres_hire_provenance_text_runtime_integrity.py
  • services/people-api/tests/test_postgres_hire_row_container_runtime_integrity.py
  • services/people-api/tests/test_postgres_hire_timestamp_runtime_integrity.py
  • services/people-api/tests/test_postgres_hire_uuid_runtime_integrity.py
🚧 Files skipped from review as they are similar to previous changes (1)
  • services/people-api/tests/test_postgres_hire_timestamp_runtime_integrity.py

Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review.


📝 Walkthrough

Walkthrough

People 변이와 채용 수락 경계가 서브클래스를 거부하도록 변경되었습니다. UUID, 문자열, Decimal, 명령, 결과, 권한 결정, 시간값, PostgreSQL 행 형태에 정확한 타입 검사를 적용했습니다. 런타임 무결성 회귀 테스트와 변경 기록을 갱신했습니다.

Changes

People 런타임 무결성

Layer / File(s) Summary
정확한 타입 검증과 변이 경로
services/people-api/src/orgmetra_people_api/hire.py, services/people-api/src/orgmetra_people_api/mutations.py
People 변이와 채용 수락의 입력, 명령, 결과, 권한 결정 검사를 정확한 타입 검사로 변경했습니다. idempotency_record_id는 테넌트 UUID를 검증한 뒤 ID를 파생합니다.
PostgreSQL 경계 검증
services/people-api/src/orgmetra_people_api/postgres_hire.py, services/people-api/src/orgmetra_people_api/postgres_mutations.py
PostgreSQL 포트가 UUID, 시간, 고정 행 형태, digest, provenance 텍스트, 명령, 권한 결정의 정확한 타입을 검증합니다. 잘못된 입력은 데이터베이스 작업 전에 기존 오류 유형으로 거부합니다.
런타임 무결성 회귀 테스트
services/people-api/tests/*runtime_integrity.py
위조된 UUID, 문자열, Decimal, 명령, 결과, 권한 결정, 시간값, 행 컨테이너가 생성, digest, 라우팅, 서비스 경계, 데이터베이스 경계를 통과하지 못하는지 검증합니다.
변경 기록과 매니페스트
CHANGELOG.md, manifest.json
고용 및 position 식별자 변경과 governance 문구 검증 변경을 기록했습니다. CHANGELOG 메타데이터를 갱신했습니다.

Estimated code review effort: 3 (Moderate) | ~25 minutes

Merge Risk: ⚪ Minimal · up to adab3

This change hardens People mutation and hire-acceptance inputs against executable subtype values while preserving supported built-in values and persistence behavior. No concrete current-head merge-blocking risk remains.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed Docstring coverage is 95.57% which is sufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 158 functions across 16 files.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed 제목은 governed mutation runtime type을 보호하는 주요 변경 사항을 정확하고 간결하게 설명합니다.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/hire-identity-type-integrity

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@seonghobae seonghobae changed the title fix(hire): protect governed identity runtime types fix(people): protect governed mutation runtime types Aug 21, 2026
@seonghobae
seonghobae marked this pull request as ready for review August 21, 2026 09:37
devin-ai-integration[bot]

This comment was marked as resolved.

@seonghobae
seonghobae marked this pull request as draft August 22, 2026 00:33
@seonghobae
seonghobae marked this pull request as ready for review August 22, 2026 00:37

Copy link
Copy Markdown
Contributor Author

Exact-head repair/evidence update for the current branch state:

  • RED ad38eb452ac1b072a146b5edf41a64a8e6553c78: direct PostgreSQL hire authority must reject HireAcceptanceCommand / AuthorizationDecision subclasses before database work.
  • GREEN 63eb051935df4291b2e423189503c0aec71b6ff1: PostgresHireAcceptancePort now requires the exact governed command and authorization runtime types.
  • RED 27623490127834413c9ffd2dc900cb06e6ca00a6: direct PostgreSQL People mutation authorization must reject AuthorizationDecision subclasses.
  • Current/root repair 76cb5b0d963ce5c2d273f23f8dce01444a38499a: _require_authorization(...) now uses the same exact governed AuthorizationDecision runtime contract as mutation_command_digest(...); the addressed review thread is resolved.

Fresh exact-current-head hosted evidence is terminal GREEN: People API Quality 32540865696, Foundation CI 32540865669, SAST Semgrep 32540865701, Security Scan 32540865651, Recovery Rehearsal Quality 32540865671. People API Quality explicitly passed the exact statement/branch coverage step on this head.

Live protected base remains develop@9e3e4847510e1e612b48474ba42b177b8ed824df; GitHub reports this PR open, mergeable, and ready-for-review. There is still no qualifying formal independent non-author APPROVE, so do not merge or reuse predecessor evidence.

devin-ai-integration[bot]

This comment was marked as resolved.

@seonghobae
seonghobae marked this pull request as draft August 22, 2026 00:42
@seonghobae
seonghobae marked this pull request as ready for review August 22, 2026 00:43

Copy link
Copy Markdown
Contributor Author

Current exact-head follow-up after fresh review:

A new review correctly identified that the three direct PostgresPeopleMutationPort entry points still used isinstance(...) for command gates even after the direct hire port was hardened. That left employment/position/assignment persistence entry points able to accept validation-bypassing command subclasses before reaching the exact-type command_route(...)/digest boundary.

  • RED e859d208766463be243dd84443a615fbc2c83da1 adds direct persistence regressions for forged EmploymentMutationCommand, PositionMutationCommand, and AssignmentMutationCommand subclasses and requires rejection before any database work.
  • Root repair/current head 0196bf545b6254a410c99be80216ac977a706683 makes all three PostgreSQL mutation entry points require the exact governed command runtime type. The matching review thread is resolved.

Fresh exact-current-head hosted evidence is terminal GREEN:

  • People API Quality 32541189508 — success; its People API contract and 100% coverage job passed the exact statement/branch coverage step.
  • Foundation CI 32541189493 — success.
  • SAST Semgrep 32541189460 — success.
  • Security Scan 32541189467 — success.
  • Recovery Rehearsal Quality 32541189512 — success.

Live protected base remains develop@9e3e4847510e1e612b48474ba42b177b8ed824df. The PR is open, mergeable and ready-for-review on current head 0196bf545b6254a410c99be80216ac977a706683. Submitted reviews remain COMMENTED only; there is no qualifying independent non-author APPROVE, so do not merge or reuse predecessor evidence.

devin-ai-integration[bot]

This comment was marked as resolved.

@seonghobae
seonghobae marked this pull request as draft August 22, 2026 01:07
@seonghobae
seonghobae marked this pull request as ready for review August 22, 2026 01:08
devin-ai-integration[bot]

This comment was marked as resolved.

Copy link
Copy Markdown
Contributor Author

Fresh exact-head review of 1ea5cb1dcc887cf5b83fa85f926228e146f09d3f found one remaining #272 test-integrity defect that is separate from production locking: _exercise_conflict(...) calls _assert_database_lock_wait(...) before barrier.release.set() and has no finally cleanup around that observation. If lock observation/assertion fails, writer A can remain blocked at the pre-COMMIT barrier until its 30-second timeout while _isolated_postgres() unwinds and removes the container; writer B may also still be live. That means the failure path does not yet prove deterministic transaction/connection cleanup and can race test-environment teardown against live DB work.

#272 authority has been repaired accordingly. It now distinguishes deterministic synthetic PostgreSQL mechanism/integration evidence from real/right-cleared commercial/scientific acceptance, and explicitly requires failure paths to release/rollback and join both writers before container teardown. This does not authorize a new production lock or reintroduce #271.

Current Foundation 34107536416 remains queued on exact 1ea5cb1d... with job 101695901753 still runner_id=0, steps=[]; no hosted GREEN is claimed. Keep this PR Draft until the harness cleanup is repaired on the canonical #64 source lane and exact-head gates/governance are satisfied.

Copy link
Copy Markdown
Contributor Author

Fresh exact-head evidence update for 818950960c4fe0a4e7b026bd5499fe9cca1002be:

  • Foundation CI 34131641452: SUCCESS. This is current-head mechanism evidence for the complete People API tree, including test(people): prove Assignment conflict serialization with real PostgreSQL interleavings #272 normal two-session PostgreSQL interleavings and forced cleanup/timeout regressions.
  • SAST Semgrep 34131642172: SUCCESS.
  • Security Scan 34131642055: FAILURE only in dependency-review job 101772912087. Exact checkout/head verification succeeded; Check dependency review support failed and the pinned Dependency Review action was skipped. OSV/Scorecard/Trivy succeeded but are not substitutes. Fresh consumer evidence was handed to canonical owner ContextualWisdomLab/.github#810.
  • CodeQL PR 34131641597: still queued/non-authorizing at this read.
  • Fresh submitted reviews remain COMMENTED-only; no qualifying APPROVED review. All returned inline review threads are resolved.

No People source churn, no-op retrigger, Security shim, predecessor-evidence transfer, or gate bypass is warranted for the central Dependency Review incident. Keep Draft.

Copy link
Copy Markdown
Contributor Author

Fresh exact-head gate sweep on 818950960c4fe0a4e7b026bd5499fe9cca1002be (2026-09-07 UTC): Foundation 34131641452 is terminal SUCCESS and SAST 34131642172 is terminal SUCCESS. Security 34131642055 is now terminal FAILURE only at dependency-review job 101785033791 / Check dependency review support; exact checkout succeeded, while Scorecard 101785033760, Trivy 101785033822, and OSV 101785033902 succeeded. This is the fail-closed .github#810 availability incident, not a People source-security verdict. CodeQL 34131641597 remains queued on the same exact head. Submitted reviews remain COMMENTED-only and returned inline threads are resolved. Keep Draft; no predecessor transfer, no no-op retrigger, no bypass. The #272 PostgreSQL mechanism tier remains current-head hosted GREEN through Foundation; real/right-cleared commercial/scientific evidence remains a separate unresolved tier.

Copy link
Copy Markdown
Contributor Author

Final fresh CodeQL materialization supersedes my earlier queued snapshot. Exact 818950960c4fe0a4e7b026bd5499fe9cca1002be CodeQL PR 34131641597 completed FAILURE at 2026-09-07T16:01:27Z. Detect-languages 101772918577 succeeded. Python 101785436100 and actions 101785436148 both successfully read the current-head dispatch verdict, then failed at Release runner or enforce current-head CodeQL verdict. The later Dispatch current-head CodeQL scan job 101795088179 itself completed SUCCESS. This is a central ordering/terminal-verdict handoff failure, not an Orgmetra source/SARIF finding. #64 therefore remains Draft: Foundation and SAST are exact-head GREEN, Security is separately fail-closed at .github#810, CodeQL is terminal non-passing at .github#1929, and qualifying independent approval is absent. No leaf rerun/no-op commit/bypass.

Copy link
Copy Markdown
Contributor Author

Fresh exact-head authority correction for 818950960c4fe0a4e7b026bd5499fe9cca1002be:

  • Foundation 34131641452 is terminal SUCCESS; test(people): prove Assignment conflict serialization with real PostgreSQL interleavings #272's normal two-session PostgreSQL conflict paths and forced failure/timeout cleanup are current-head hosted mechanism evidence.
  • SAST 34131642172 is terminal SUCCESS.
  • Security 34131642055 is terminal FAILURE only in dependency-review: exact checkout succeeded; Scorecard, Trivy and OSV succeeded; Check dependency review support failed before the pinned action. Canonical control-plane incident remains .github#810; substitutes are not promoted to Dependency Review GREEN.
  • CodeQL 34131641597 is terminal FAILURE in the central terminal-verdict handoff. Detect-languages succeeded; Python/Actions compatibility readers consumed no terminal authority and failed, while a later same-run dispatch job succeeded. This is the unchanged-head ordering/publication canary already handed to .github#1929, not a leaf source/SARIF RED; a failed-job rerun would not manufacture the missing terminal receipt.
  • Fresh submitted reviews remain COMMENTED-only and all currently returned inline threads are resolved; no qualifying APPROVED review exists.

Keep Draft. Do not transfer predecessor evidence, no-op retrigger, self-approve or bypass.

Separate DDD handoff: protected architecture assigns Position to organization_core, while the currently shipped/this PR's People mutation boundary still owns Position writes. New #274 records that accepted-architecture ↔ executable-owner gap. It does not invalidate #64's current Position hardening: preserve this repair through normal integration first, then extract Position authority through the canonical Organization owner without copying this mutable branch or introducing cross-service SQL.

Copy link
Copy Markdown
Contributor Author

Fresh current-head authority correction for unchanged 818950960c4fe0a4e7b026bd5499fe9cca1002be (the PR body still labels three lanes non-terminal).

  • Foundation 34131641452: terminal SUCCESS; this is current-head hosted mechanism GREEN for test(people): prove Assignment conflict serialization with real PostgreSQL interleavings #272's real PostgreSQL two-session interleavings and forced failure/timeout cleanup.
  • SAST 34131642172: terminal SUCCESS.
  • Security 34131642055: terminal FAILURE at the centrally owned Dependency Review support boundary; do not translate that into a People source finding or substitute OSV/Trivy/Scorecard evidence.
  • CodeQL 34131641597: terminal FAILURE at current-head verdict enforcement/receipt ordering; prior fresh RCA already bound this to .github#1929, not a People SARIF/source defect.
  • PR remains open · Draft · mechanically mergeable on direct protected develop@eb9757f8649aaad026a9865508d9aad50c1a7a4f; no qualifying independent APPROVED review exists.

No source churn or no-op retrigger is justified by these terminal central-owner failures. #272 mechanism evidence stays GREEN; the separate real/right-cleared commercial/scientific tier remains unresolved and must not be inferred from synthetic integration fixtures.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant